/* Include these
   #include <uuid/uuid.h>
   #include <nit/list.h>
   #include "fld.h"
   #include "des.h"
*/

#define INB_PRDF 2

typedef void *(*Inb_func)(Inb_cell *args);

typedef struct {
	uuid_t id;
	Inb_cell *args; /* flds */
	Inb_fld *out;

	union {
		Inb_cell *bod;
	        Inb_func func;
	} d;
} Inb_prd;

typedef struct {
	Inb_des des;
	Inb_prd prd;
} Inb_prd_tagd;

Inb_prd *
inb_prd_newf(uuid_t id, Inb_cell *args, Inb_fld *out, Inb_func func);

Inb_prd *
inb_prd_newb(uuid_t id, Inb_cell *args, Inb_fld *out, Inb_cell *bod);

void *
inb_prd_apply(Inb_prd *prd, Inb_cell *args);
